package hust.cs.javacourse.search.index.impl;

import hust.cs.javacourse.search.index.AbstractTerm;
import hust.cs.javacourse.search.index.AbstractTermTuple;

public class TermTuple extends AbstractTermTuple {
    /**
     * 缺省构造函数
     */
    public TermTuple(){
        super();
    }

    /**
     * 构造函数
     * @param term
     * @param curPos
     */
    public TermTuple(AbstractTerm term, int curPos){
        this.term = term;
        this.curPos = curPos;
    }

    /**
     * 判断二个三元组内容是否相同
     * @param obj ：要比较的另外一个三元组
     * @return 如果内容相等（三个属性内容都相等）返回true，否则返回false
     */
    @Override
    public boolean equals(Object obj){
        if(!(obj instanceof TermTuple)) return false;
        if(obj==this) return true;
        TermTuple temp = (TermTuple)obj;
        //错误的做法！this.tem==temp.term
        return this.term.equals(temp.term) && temp.freq==this.freq && this.curPos==temp.curPos;
    }

    /**
     * 获得三元组的字符串表示
     * @return ： 三元组的字符串表示
     */
    @Override
    public String toString(){
        return "TermTuple:\n{Term: " + term + ", freq=1, curPos=" + curPos + "}.\n";
    }
}
